#include "StdFile.h"
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define MAX 20
void ElementPrint(ElementType element)
{
    // char *s=(char *)element;
    printf("%s",(char*)element);
}

void ElementFree(ElementType element)
{
    free((char*)element);
}

struct Map
{
    char key[MAX];
    char value[MAX];
};
struct Map *CreateMap(const char *key,const char *value)
{
    struct Map* map=(struct Map*)malloc (sizeof(struct Map));
    if(map==NULL)
    {
        return NULL;
    }
    strcpy(map->key,key);
    strcpy(map->value,value);
    return map;
}
void FreeMap(struct Map *map)
{
    if(map!=NULL)
    {
        free(map);
    }
}
static DLList maplist;
void StrTok(ElementType element)
{
    char *s=(char *)element;
    char *key=strtok(s,"=");
    char *value=strtok(NULL,"=");
    struct Map *map=CreateMap(key,value);
    InsertTail(&maplist,map);
}
void PrintMap(ElementType element)
{
    struct Map *map=(struct Map*)element;
    printf("key:%s   value:%s   \n",map->key,map->value);
}
void main()
{
    // char *s=LoadFromFile("file.txt");
    // if(s==NULL)
    // {
    //     printf("LoadFile error\n");
    //     return;
    // }
    // printf("%s",s);
    // free(s);
    // DLList *list=GetLineFromFile("file.txt");
    // DLTrave(list,ElementPrint);
    // SaveLineToFile("file1.txt",list);
    // FreeDLinkList(list,ElementFree);
    // AppendToFile("file.txt","\n");
    // AppendToFile("file.txt","243class\n");
    // char *s="helloworld";
    // SaveToFile("file.txt",s,10);
    // InitDLinkList(maplist);
    // DLList *list=GetLineFromFile("log.txt");
    // DLTrave(list,StrTok);
    // DLTrave(&maplist,PrintMap);
    // DLTrave(list,ElementPrint);
    // CreateFile("log1.txt");
    // CreateFloder("ss");
    CopyFile("log.txt","log1.txt");
}